/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package communication;

import org.eclipse.emf.common.util.EList;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Rest Ful Service</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link communication.RestFulService#getUrlMapping <em>Url Mapping</em>}</li>
 *   <li>{@link communication.RestFulService#getHttpMethod <em>Http Method</em>}</li>
 *   <li>{@link communication.RestFulService#getServiceClassName <em>Service Class Name</em>}</li>
 *   <li>{@link communication.RestFulService#getServiceName <em>Service Name</em>}</li>
 *   <li>{@link communication.RestFulService#getResponse <em>Response</em>}</li>
 *   <li>{@link communication.RestFulService#getParameters <em>Parameters</em>}</li>
 *   <li>{@link communication.RestFulService#getOperationName <em>Operation Name</em>}</li>
 * </ul>
 * </p>
 *
 * @see communication.CommunicationPackage#getRestFulService()
 * @model
 * @generated
 */
public interface RestFulService extends EObject {
	/**
	 * Returns the value of the '<em><b>Url Mapping</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Url Mapping</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Url Mapping</em>' attribute.
	 * @see #setUrlMapping(String)
	 * @see communication.CommunicationPackage#getRestFulService_UrlMapping()
	 * @model
	 * @generated
	 */
	String getUrlMapping();

	/**
	 * Sets the value of the '{@link communication.RestFulService#getUrlMapping <em>Url Mapping</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Url Mapping</em>' attribute.
	 * @see #getUrlMapping()
	 * @generated
	 */
	void setUrlMapping(String value);

	/**
	 * Returns the value of the '<em><b>Http Method</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Http Method</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Http Method</em>' attribute.
	 * @see #setHttpMethod(String)
	 * @see communication.CommunicationPackage#getRestFulService_HttpMethod()
	 * @model required="true"
	 * @generated
	 */
	String getHttpMethod();

	/**
	 * Sets the value of the '{@link communication.RestFulService#getHttpMethod <em>Http Method</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Http Method</em>' attribute.
	 * @see #getHttpMethod()
	 * @generated
	 */
	void setHttpMethod(String value);

	/**
	 * Returns the value of the '<em><b>Service Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Service Name</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Service Name</em>' attribute.
	 * @see #setServiceName(String)
	 * @see communication.CommunicationPackage#getRestFulService_ServiceName()
	 * @model required="true"
	 * @generated
	 */
	String getServiceName();

	/**
	 * Sets the value of the '{@link communication.RestFulService#getServiceName <em>Service Name</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Service Name</em>' attribute.
	 * @see #getServiceName()
	 * @generated
	 */
	void setServiceName(String value);

	/**
	 * Returns the value of the '<em><b>Service Class Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Service Class Name</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Service Class Name</em>' attribute.
	 * @see #setServiceClassName(String)
	 * @see communication.CommunicationPackage#getRestFulService_ServiceClassName()
	 * @model
	 * @generated
	 */
	String getServiceClassName();

	/**
	 * Sets the value of the '{@link communication.RestFulService#getServiceClassName <em>Service Class Name</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Service Class Name</em>' attribute.
	 * @see #getServiceClassName()
	 * @generated
	 */
	void setServiceClassName(String value);

	/**
	 * Returns the value of the '<em><b>Operation Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Operation Name</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Operation Name</em>' attribute.
	 * @see #setOperationName(String)
	 * @see communication.CommunicationPackage#getRestFulService_OperationName()
	 * @model required="true"
	 * @generated
	 */
	String getOperationName();

	/**
	 * Sets the value of the '{@link communication.RestFulService#getOperationName <em>Operation Name</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Operation Name</em>' attribute.
	 * @see #getOperationName()
	 * @generated
	 */
	void setOperationName(String value);

	/**
	 * Returns the value of the '<em><b>Response</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Response</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Response</em>' reference.
	 * @see #setResponse(Type)
	 * @see communication.CommunicationPackage#getRestFulService_Response()
	 * @model
	 * @generated
	 */
	Type getResponse();

	/**
	 * Sets the value of the '{@link communication.RestFulService#getResponse <em>Response</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Response</em>' reference.
	 * @see #getResponse()
	 * @generated
	 */
	void setResponse(Type value);

	/**
	 * Returns the value of the '<em><b>Parameters</b></em>' containment reference list.
	 * The list contents are of type {@link communication.Parameter}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Parameters</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Parameters</em>' containment reference list.
	 * @see communication.CommunicationPackage#getRestFulService_Parameters()
	 * @model containment="true"
	 * @generated
	 */
	EList<Parameter> getParameters();

} // RestFulService
